package com.dji.sdk.mqtt;

/**
 * 通道名称常量类。
 * 此类定义了DJI云API中所有MQTT消息通道的名称常量，用于标识不同类型的消息流。
 * 消息通道是Spring Integration中的概念，用于路由和处理消息。
 * 
 * 通道名称分为几大类别：
 * - 基础通道（入站、出站、默认）
 * - 状态通道（设备在线离线状态相关）
 * - 状态更新通道（设备各种状态更新相关）
 * - OSD通道（飞行器姿态、位置等实时数据）
 * - 请求通道（处理各种请求操作）
 * - 事件通道（处理各种事件通知）
 * - 属性通道（处理设备属性相关消息）
 * - DRC通道（直接遥控相关消息）
 *
 * @author sean.zhou
 * @date 2021/11/10
 * @version 0.1
 */
public class ChannelName {

    /** 基本入站消息通道，接收所有入站消息 */
    public static final String INBOUND = "inbound";
    /** 默认消息处理通道，处理未指定特定处理器的消息 */
    public static final String DEFAULT = "default";
    /** 基本出站消息通道，发送所有出站消息 */
    public static final String OUTBOUND = "outbound";

    // 状态相关通道
    /** 设备状态入站消息通道 */
    public static final String INBOUND_STATUS = "inboundStatus";

    /** 设备状态出站消息通道 */
    public static final String OUTBOUND_STATUS = "outboundStatus";

    /** 设备上线状态入站消息通道 */
    public static final String INBOUND_STATUS_ONLINE = "inboundStatusOnline";

    /** 设备离线状态入站消息通道 */
    public static final String INBOUND_STATUS_OFFLINE = "inboundStatusOffline";


    // 状态更新相关通道
    /** 设备状态更新入站消息通道 */
    public static final String INBOUND_STATE = "inboundState";

    /** 遥控器控制源状态更新入站消息通道 */
    public static final String INBOUND_STATE_RC_CONTROL_SOURCE = "inboundStateRcControlSource";

    /** 机场（Dock）无人机控制源状态更新入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_CONTROL_SOURCE = "inboundStateDockControlSource";

    /** 遥控器直播能力更新入站消息通道 */
    public static final String INBOUND_STATE_RC_LIVESTREAM_ABILITY_UPDATE = "inboundStateRcLiveCapacity";

    /** 机场（Dock）直播能力更新入站消息通道 */
    public static final String INBOUND_STATE_DOCK_LIVESTREAM_ABILITY_UPDATE = "inboundStateDockLiveCapacity";

    /** 遥控器直播状态入站消息通道 */
    public static final String INBOUND_STATE_RC_LIVE_STATUS = "inboundStateRcLiveStatus";

    /** 机场（Dock）直播状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_LIVE_STATUS = "inboundStateDockLiveStatus";

    /** 遥控器和无人机固件版本状态入站消息通道 */
    public static final String INBOUND_STATE_RC_AND_DRONE_FIRMWARE_VERSION = "inboundStateRcAndDroneFirmwareVersion";

    /** 机场（Dock）固件版本状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_FIRMWARE_VERSION = "inboundStateDockFirmwareVersion";

    /** 遥控器负载设备固件状态入站消息通道 */
    public static final String INBOUND_STATE_RC_PAYLOAD_FIRMWARE = "inboundStateRcPayloadFirmware";

    /** 机场（Dock）无人机航点任务版本状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_WPMZ_VERSION = "inboundStateDockDroneWpmzVersion";

    /** 机场（Dock）无人机热成像支持的调色板样式状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_THERMAL_SUPPORTED_PALETTE_STYLE = "inboundStateDockDronePayload";

    /** 机场（Dock）无人机返航模式状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_RTH_MODE = "inboundStateDockDroneRthMode";

    /** 机场（Dock）无人机当前返航模式状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_CURRENT_RTH_MODE = "inboundStateDockDroneCurrentRthMode";

    /** 机场（Dock）无人机指令模式丢失动作状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_COMMANDER_MODE_LOST_ACTION = "inboundStateDockDroneCommanderModeLostAction";

    /** 机场（Dock）无人机当前指令飞行模式状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_CURRENT_COMMANDER_FLIGHT_MODE = "inboundStateDockDroneCurrentCommanderFlightMode";

    /** 机场（Dock）无人机指令飞行高度状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_COMMANDER_FLIGHT_HEIGHT = "inboundStateDockDroneCommanderFlightHeight";

    /** 机场（Dock）无人机模式代码原因状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_MODE_CODE_REASON = "inboundStateDockDroneModeCodeReason";

    /** 机场（Dock）无人机离线地图启用状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_DRONE_OFFLINE_MAP_ENABLE = "inboundStateDockDroneOfflineMapEnable";

    /** 机场（Dock）和无人机加密狗信息状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_AND_DRONE_DONGLE_INFOS = "inboundStateDockAndDroneDongleInfos";

    /** 机场（Dock）静音模式状态入站消息通道 */
    public static final String INBOUND_STATE_DOCK_SILENT_MODE = "inboundStateDockSilentMode";

    /** 状态更新出站消息通道 */
    public static final String OUTBOUND_STATE = "outboundState";


    // 服务回复通道
    /** 服务回复入站消息通道 */
    public static final String INBOUND_SERVICES_REPLY = "inboundServicesReply";


    // OSD（屏幕显示数据）通道
    /** OSD数据入站消息通道 */
    public static final String INBOUND_OSD = "inboundOsd";

    /** 遥控器OSD数据入站消息通道 */
    public static final String INBOUND_OSD_RC = "inboundOsdRc";

    /** 机场（Dock）OSD数据入站消息通道 */
    public static final String INBOUND_OSD_DOCK = "inboundOsdDock";

    /** 遥控器无人机OSD数据入站消息通道 */
    public static final String INBOUND_OSD_RC_DRONE = "inboundOsdRcDrone";

    /** 机场（Dock）无人机OSD数据入站消息通道 */
    public static final String INBOUND_OSD_DOCK_DRONE = "inboundOsdDockDrone";


    // 请求通道
    /** 请求入站消息通道 */
    public static final String INBOUND_REQUESTS = "inboundRequests";

    /** 存储配置获取请求入站消息通道 */
    public static final String INBOUND_REQUESTS_STORAGE_CONFIG_GET = "inboundRequestsStorageConfigGet";

    /** 机场绑定状态请求入站消息通道 */
    public static final String INBOUND_REQUESTS_AIRPORT_BIND_STATUS = "inboundRequestsAirportBindStatus";

    /** 机场组织获取请求入站消息通道 */
    public static final String INBOUND_REQUESTS_AIRPORT_ORGANIZATION_GET = "inboundRequestsAirportOrganizationGet";

    /** 机场组织绑定请求入站消息通道 */
    public static final String INBOUND_REQUESTS_AIRPORT_ORGANIZATION_BIND = "inboundRequestsAirportOrganizationBind";

    /** 配置请求入站消息通道 */
    public static final String INBOUND_REQUESTS_CONFIG = "inboundRequestsConfig";

    /** 飞行任务资源获取请求入站消息通道 */
    public static final String INBOUND_REQUESTS_FLIGHTTASK_RESOURCE_GET = "inboundRequestsFlightTaskResourceGet";

    /** 飞行区域获取请求入站消息通道 */
    public static final String INBOUND_REQUESTS_FLIGHT_AREAS_GET = "inboundRequestsFlightAreasGet";

    /** 离线地图获取请求入站消息通道 */
    public static final String INBOUND_REQUESTS_OFFLINE_MAP_GET = "inboundRequestsOfflineMapGet";

    /** 请求出站消息通道 */
    public static final String OUTBOUND_REQUESTS = "outboundRequests";


    // 事件通道
    /** 事件入站消息通道 */
    public static final String INBOUND_EVENTS = "inboundEvents";

    /** 事件出站消息通道 */
    public static final String OUTBOUND_EVENTS = "outboundEvents";

    /** 设备退出返航通知事件入站消息通道 */
    public static final String INBOUND_EVENTS_DEVICE_EXIT_HOMING_NOTIFY = "inboundEventsDeviceExitHomingNotify";

    /** 飞行任务进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_FLIGHTTASK_PROGRESS = "inboundEventsFlighttaskProgress";

    /** 飞行任务准备就绪事件入站消息通道 */
    public static final String INBOUND_EVENTS_FLIGHTTASK_READY = "inboundEventsFlighttaskReady";

    /** 文件上传回调事件入站消息通道 */
    public static final String INBOUND_EVENTS_FILE_UPLOAD_CALLBACK = "inboundEventsFileUploadCallback";

    /** 健康管理系统（HMS）事件入站消息通道 */
    public static final String INBOUND_EVENTS_HMS = "inboundEventsHms";

    /** 控制进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_CONTROL_PROGRESS = "inboundEventsControlProgress";

    /** OTA升级进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_OTA_PROGRESS = "inboundEventsOtaProgress";

    /** 文件上传进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_FILEUPLOAD_PROGRESS = "inboundEventsFileUploadProgress";

    /** 飞向点位进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_FLY_TO_POINT_PROGRESS = "inboundEventsFlyToPointProgress";

    /** 起飞至点位进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_TAKEOFF_TO_POINT_PROGRESS = "inboundEventsTakeoffToPointProgress";

    /** DRC状态通知事件入站消息通道 */
    public static final String INBOUND_EVENTS_DRC_STATUS_NOTIFY = "inboundEventsDrcStatusNotify";

    /** 摇杆无效通知事件入站消息通道 */
    public static final String INBOUND_EVENTS_JOYSTICK_INVALID_NOTIFY = "inboundEventsJoystickInvalidNotify";

    /** 最高优先级上传飞行任务媒体事件入站消息通道 */
    public static final String INBOUND_EVENTS_HIGHEST_PRIORITY_UPLOAD_FLIGHT_TASK_MEDIA = "inboundEventsHighestPriorityUploadFlightTaskMedia";

    /** 返航信息事件入站消息通道 */
    public static final String INBOUND_EVENTS_RETURN_HOME_INFO = "inboundEventsReturnHomeInfo";

    /** 来自ESDK的自定义数据传输事件入站消息通道 */
    public static final String INBOUND_EVENTS_CUSTOM_DATA_TRANSMISSION_FROM_ESDK = "inboundEventsCustomDataTransmissionFromEsdk";

    /** 来自PSDK的自定义数据传输事件入站消息通道 */
    public static final String INBOUND_EVENTS_CUSTOM_DATA_TRANSMISSION_FROM_PSDK = "inboundEventsCustomDataTransmissionFromPsdk";

    /** 空中感知警告事件入站消息通道 */
    public static final String INBOUND_EVENTS_AIRSENSE_WARNING = "inboundEventsAirsenseWarning";

    /** 飞行区域同步进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_FLIGHT_AREAS_SYNC_PROGRESS = "inboundEventsFlightAreasSyncProgress";

    /** 飞行区域无人机位置事件入站消息通道 */
    public static final String INBOUND_EVENTS_FLIGHT_AREAS_DRONE_LOCATION = "inboundEventsFlightAreasDroneLocation";

    /** 离线地图同步进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_OFFLINE_MAP_SYNC_PROGRESS = "inboundEventsOfflineMapSyncProgress";

    /** 兴趣点（POI）状态通知事件入站消息通道 */
    public static final String INBOUND_EVENTS_POI_STATUS_NOTIFY = "inboundEventsPoiStatusNotify";

    /** 相机拍照进度事件入站消息通道 */
    public static final String INBOUND_EVENTS_CAMERA_PHOTO_TAKE_PROGRESS = "inboundEventsCameraPhotoTakeProgress";


    // 属性通道
    /** 属性设置回复入站消息通道 */
    public static final String INBOUND_PROPERTY_SET_REPLY = "inboundPropertySetReply";


    // DRC上行通道（直接遥控相关）
    /** DRC上行入站消息通道 */
    public static final String INBOUND_DRC_UP = "inboundDrcUp";

    /** DRC上行无人机控制入站消息通道 */
    public static final String INBOUND_DRC_UP_DRONE_CONTROL = "inboundDrcUpDroneControl";

    /** DRC上行无人机紧急停止入站消息通道 */
    public static final String INBOUND_DRC_UP_DRONE_EMERGENCY_STOP = "inboundDrcUpDroneEmergencyStop";

    /** DRC上行心跳包入站消息通道 */
    public static final String INBOUND_DRC_UP_HEART_BEAT = "inboundDrcUpHeartBeat";

    /** DRC上行HSI信息推送入站消息通道 */
    public static final String INBOUND_DRC_UP_HSI_INFO_PUSH = "inboundDrcUpHsiInfoPush";

    /** DRC上行延迟信息推送入站消息通道 */
    public static final String INBOUND_DRC_UP_DELAY_INFO_PUSH = "inboundDrcUpDelayInfoPush";

    /** DRC上行OSD信息推送入站消息通道 */
    public static final String INBOUND_DRC_UP_OSD_INFO_PUSH = "inboundDrcUpOsdInfoPush";

}
